1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 29 module derelict.glib.gstrfuncs; 30 31 import derelict.glib.gtypes; 32 import derelict.glib.glibconfig; 33 import core.stdc.config; 34 import std.c.stdarg; 35 36 extern (C): 37 38 alias _Anonymous_0 GAsciiType; 39 40 version(Derelict_Link_Static) 41 { 42 //extern( C ) nothrow 43 //{ 44 // const guint16* g_ascii_table; 45 //} 46 } 47 else 48 { 49 extern( C ) nothrow 50 { 51 alias da_g_ascii_table = const guint16*; 52 } 53 54 __gshared 55 { 56 da_g_ascii_table g_ascii_table; 57 } 58 } 59 60 61 enum _Anonymous_0 62 { 63 G_ASCII_ALNUM = 1, 64 G_ASCII_ALPHA = 2, 65 G_ASCII_CNTRL = 4, 66 G_ASCII_DIGIT = 8, 67 G_ASCII_GRAPH = 16, 68 G_ASCII_LOWER = 32, 69 G_ASCII_PRINT = 64, 70 G_ASCII_PUNCT = 128, 71 G_ASCII_SPACE = 256, 72 G_ASCII_UPPER = 512, 73 G_ASCII_XDIGIT = 1024 74 } 75 76 version(Derelict_Link_Static) 77 { 78 extern( C ) nothrow 79 { 80 gchar g_ascii_tolower(gchar c); 81 gchar g_ascii_toupper(gchar c); 82 gint g_ascii_digit_value(gchar c); 83 gint g_ascii_xdigit_value(gchar c); 84 gchar* g_strdelimit(gchar* string, const(gchar)* delimiters, gchar new_delimiter); 85 gchar* g_strcanon(gchar* string, const(gchar)* valid_chars, gchar substitutor); 86 const(gchar)* g_strerror(gint errnum); 87 const(gchar)* g_strsignal(gint signum); 88 gchar* g_strreverse(gchar* string); 89 gsize g_strlcpy(gchar* dest, const(gchar)* src, gsize dest_size); 90 gsize g_strlcat(gchar* dest, const(gchar)* src, gsize dest_size); 91 gchar* g_strstr_len(const(gchar)* haystack, gssize haystack_len, const(gchar)* needle); 92 gchar* g_strrstr(const(gchar)* haystack, const(gchar)* needle); 93 gchar* g_strrstr_len(const(gchar)* haystack, gssize haystack_len, const(gchar)* needle); 94 gboolean g_str_has_suffix(const(gchar)* str, const(gchar)* suffix); 95 gboolean g_str_has_prefix(const(gchar)* str, const(gchar)* prefix); 96 gdouble g_strtod(const(gchar)* nptr, gchar** endptr); 97 gdouble g_ascii_strtod(const(gchar)* nptr, gchar** endptr); 98 guint64 g_ascii_strtoull(const(gchar)* nptr, gchar** endptr, guint base); 99 gint64 g_ascii_strtoll(const(gchar)* nptr, gchar** endptr, guint base); 100 gchar* g_ascii_dtostr(gchar* buffer, gint buf_len, gdouble d); 101 gchar* g_ascii_formatd(gchar* buffer, gint buf_len, const(gchar)* format, gdouble d); 102 gchar* g_strchug(gchar* string); 103 gchar* g_strchomp(gchar* string); 104 gint g_ascii_strcasecmp(const(gchar)* s1, const(gchar)* s2); 105 gint g_ascii_strncasecmp(const(gchar)* s1, const(gchar)* s2, gsize n); 106 gchar* g_ascii_strdown(const(gchar)* str, gssize len); 107 gchar* g_ascii_strup(const(gchar)* str, gssize len); 108 gint g_strcasecmp(const(gchar)* s1, const(gchar)* s2); 109 gint g_strncasecmp(const(gchar)* s1, const(gchar)* s2, guint n); 110 gchar* g_strdown(gchar* string); 111 gchar* g_strup(gchar* string); 112 gchar* g_strdup(const(gchar)* str); 113 gchar* g_strdup_printf(const(gchar)* format, ...); 114 gchar* g_strdup_vprintf(const(gchar)* format, va_list args); 115 gchar* g_strndup(const(gchar)* str, gsize n); 116 gchar* g_strnfill(gsize length, gchar fill_char); 117 gchar* g_strconcat(const(gchar)* string1, ...); 118 gchar* g_strjoin(const(gchar)* separator, ...); 119 gchar* g_strcompress(const(gchar)* source); 120 gchar* g_strescape(const(gchar)* source, const(gchar)* exceptions); 121 gpointer g_memdup(gconstpointer mem, guint byte_size); 122 gchar** g_strsplit(const(gchar)* string, const(gchar)* delimiter, gint max_tokens); 123 gchar** g_strsplit_set(const(gchar)* string, const(gchar)* delimiters, gint max_tokens); 124 gchar* g_strjoinv(const(gchar)* separator, gchar** str_array); 125 void g_strfreev(gchar** str_array); 126 gchar** g_strdupv(gchar** str_array); 127 guint g_strv_length(gchar** str_array); 128 gchar* g_stpcpy(gchar* dest, const(char)* src); 129 } 130 } 131 else 132 { 133 extern( C ) nothrow 134 { 135 alias da_g_ascii_tolower = gchar function(gchar c); 136 alias da_g_ascii_toupper = gchar function(gchar c); 137 alias da_g_ascii_digit_value = gint function(gchar c); 138 alias da_g_ascii_xdigit_value = gint function(gchar c); 139 alias da_g_strdelimit = gchar* function(gchar* string, const(gchar)* delimiters, gchar new_delimiter); 140 alias da_g_strcanon = gchar* function(gchar* string, const(gchar)* valid_chars, gchar substitutor); 141 alias da_g_strerror = const(gchar)* function(gint errnum); 142 alias da_g_strsignal = const(gchar)* function(gint signum); 143 alias da_g_strreverse = gchar* function(gchar* string); 144 alias da_g_strlcpy = gsize function(gchar* dest, const(gchar)* src, gsize dest_size); 145 alias da_g_strlcat = gsize function(gchar* dest, const(gchar)* src, gsize dest_size); 146 alias da_g_strstr_len = gchar* function(const(gchar)* haystack, gssize haystack_len, const(gchar)* needle); 147 alias da_g_strrstr = gchar* function(const(gchar)* haystack, const(gchar)* needle); 148 alias da_g_strrstr_len = gchar* function(const(gchar)* haystack, gssize haystack_len, const(gchar)* needle); 149 alias da_g_str_has_suffix = gboolean function(const(gchar)* str, const(gchar)* suffix); 150 alias da_g_str_has_prefix = gboolean function(const(gchar)* str, const(gchar)* prefix); 151 alias da_g_strtod = gdouble function(const(gchar)* nptr, gchar** endptr); 152 alias da_g_ascii_strtod = gdouble function(const(gchar)* nptr, gchar** endptr); 153 alias da_g_ascii_strtoull = guint64 function(const(gchar)* nptr, gchar** endptr, guint base); 154 alias da_g_ascii_strtoll = gint64 function(const(gchar)* nptr, gchar** endptr, guint base); 155 alias da_g_ascii_dtostr = gchar* function(gchar* buffer, gint buf_len, gdouble d); 156 alias da_g_ascii_formatd = gchar* function(gchar* buffer, gint buf_len, const(gchar)* format, gdouble d); 157 alias da_g_strchug = gchar* function(gchar* string); 158 alias da_g_strchomp = gchar* function(gchar* string); 159 alias da_g_ascii_strcasecmp = gint function(const(gchar)* s1, const(gchar)* s2); 160 alias da_g_ascii_strncasecmp = gint function(const(gchar)* s1, const(gchar)* s2, gsize n); 161 alias da_g_ascii_strdown = gchar* function(const(gchar)* str, gssize len); 162 alias da_g_ascii_strup = gchar* function(const(gchar)* str, gssize len); 163 alias da_g_strcasecmp = gint function(const(gchar)* s1, const(gchar)* s2); 164 alias da_g_strncasecmp = gint function(const(gchar)* s1, const(gchar)* s2, guint n); 165 alias da_g_strdown = gchar* function(gchar* string); 166 alias da_g_strup = gchar* function(gchar* string); 167 alias da_g_strdup = gchar* function(const(gchar)* str); 168 alias da_g_strdup_printf = gchar* function(const(gchar)* format, ...); 169 alias da_g_strdup_vprintf = gchar* function(const(gchar)* format, va_list args); 170 alias da_g_strndup = gchar* function(const(gchar)* str, gsize n); 171 alias da_g_strnfill = gchar* function(gsize length, gchar fill_char); 172 alias da_g_strconcat = gchar* function(const(gchar)* string1, ...); 173 alias da_g_strjoin = gchar* function(const(gchar)* separator, ...); 174 alias da_g_strcompress = gchar* function(const(gchar)* source); 175 alias da_g_strescape = gchar* function(const(gchar)* source, const(gchar)* exceptions); 176 alias da_g_memdup = gpointer function(gconstpointer mem, guint byte_size); 177 alias da_g_strsplit = gchar** function(const(gchar)* string, const(gchar)* delimiter, gint max_tokens); 178 alias da_g_strsplit_set = gchar** function(const(gchar)* string, const(gchar)* delimiters, gint max_tokens); 179 alias da_g_strjoinv = gchar* function(const(gchar)* separator, gchar** str_array); 180 alias da_g_strfreev = void function(gchar** str_array); 181 alias da_g_strdupv = gchar** function(gchar** str_array); 182 alias da_g_strv_length = guint function(gchar** str_array); 183 alias da_g_stpcpy = gchar* function(gchar* dest, const(char)* src); 184 } 185 186 __gshared 187 { 188 da_g_ascii_tolower g_ascii_tolower; 189 da_g_ascii_toupper g_ascii_toupper; 190 da_g_ascii_digit_value g_ascii_digit_value; 191 da_g_ascii_xdigit_value g_ascii_xdigit_value; 192 da_g_strdelimit g_strdelimit; 193 da_g_strcanon g_strcanon; 194 da_g_strerror g_strerror; 195 da_g_strsignal g_strsignal; 196 da_g_strreverse g_strreverse; 197 da_g_strlcpy g_strlcpy; 198 da_g_strlcat g_strlcat; 199 da_g_strstr_len g_strstr_len; 200 da_g_strrstr g_strrstr; 201 da_g_strrstr_len g_strrstr_len; 202 da_g_str_has_suffix g_str_has_suffix; 203 da_g_str_has_prefix g_str_has_prefix; 204 da_g_strtod g_strtod; 205 da_g_ascii_strtod g_ascii_strtod; 206 da_g_ascii_strtoull g_ascii_strtoull; 207 da_g_ascii_strtoll g_ascii_strtoll; 208 da_g_ascii_dtostr g_ascii_dtostr; 209 da_g_ascii_formatd g_ascii_formatd; 210 da_g_strchug g_strchug; 211 da_g_strchomp g_strchomp; 212 da_g_ascii_strcasecmp g_ascii_strcasecmp; 213 da_g_ascii_strncasecmp g_ascii_strncasecmp; 214 da_g_ascii_strdown g_ascii_strdown; 215 da_g_ascii_strup g_ascii_strup; 216 da_g_strcasecmp g_strcasecmp; 217 da_g_strncasecmp g_strncasecmp; 218 da_g_strdown g_strdown; 219 da_g_strup g_strup; 220 da_g_strdup g_strdup; 221 da_g_strdup_printf g_strdup_printf; 222 da_g_strdup_vprintf g_strdup_vprintf; 223 da_g_strndup g_strndup; 224 da_g_strnfill g_strnfill; 225 da_g_strconcat g_strconcat; 226 da_g_strjoin g_strjoin; 227 da_g_strcompress g_strcompress; 228 da_g_strescape g_strescape; 229 da_g_memdup g_memdup; 230 da_g_strsplit g_strsplit; 231 da_g_strsplit_set g_strsplit_set; 232 da_g_strjoinv g_strjoinv; 233 da_g_strfreev g_strfreev; 234 da_g_strdupv g_strdupv; 235 da_g_strv_length g_strv_length; 236 da_g_stpcpy g_stpcpy; 237 } 238 }